Repository navigation
Gateway: enforce caller authority and opaque app documents - #197
Conversation
|
Review note: this PR is now stacked on #188, so the diff shows only #167's changes; GitHub moves it back to develop when #188 merges. About 7,000 of the changed lines are inline scripts moved unchanged into files, so the app CSP can use script-src 'self': documents/browser/index.html to documents.js (2,260 of 2,280 lines identical; the rest is the Markdown escaping fix), inbox/browser/index.html to inbox.js (all 841 identical) and archive-manager/browser/index.html to archive-manager.js (all 612 identical). |
|
Independent adversarial review (Claude Opus, run by the operator for Anders, 2 October; different model family from the author). |
The gateway checks its configured Host, request origin and caller authority before reading private bodies. Runtime keeps Carrier bootstrap private unless the host enables its existing public publisher projection. Assistant launches are refused on Home routes. App and shell documents have opaque origins and gateway-only connections; Documents escapes hostile Markdown fields.
Anonymous passkey begin returns an empty credential list. Challenge pools and real-peer begin limits remain bounded. Authorized step-up selects only its original credential. Older security keys recover through a local operator hint: the CLI reads existing metadata, Home selects one ID in the browser, and the existing gateway verifies the proof. The same principal, root and role are preserved. Home clears the hint after each attempt, cancel and page exit.
Direct Chat gives a same-window Open Home link and starts neither WASM nor private API requests before Home launch. Signed Chat retains its existing startup. The historical CHAT-02 guest-admission prerequisite remains open; this change proves direct-entry recovery.
Validation:
678ae6b1.irzhywaurequested for the final candidate.Refs #167 and the merged scope from #185. Depends on #188; its candidate acfe57f remains an ancestor. Target: develop. Source and fixture proof is recorded here; installed product and manual UX claims remain outside this evidence. Human approval and integrated dependencies gate merge.